<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@include file="common.jsp"%>
<html>
<head>
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>工厂信息</title>
<script type="text/javascript">
$(function() {
	$(".form_datetime").datetimepicker({
		/* 显示格式 */       
		format: "yyyy-mm-dd",
	    /* 完成关闭 */
	    autoclose: true,
	   /*  今天 时间按钮*/
	    todayBtn: true, 
	   /*  今天的时间变黄色 */
	    todayHighlight:true, 
	    /* 定位 */
	    pickerPosition: "bottom-left",
	    /* 最小值 */
	    minuteStep: 10,
	    /*  语言 */
	    language: 'zh-CN',  
		/* 分上午下午 */
	    showMeridian: true,
	    /* 分的所有 */
	    minuteStep:true,
	    /* 月视图 */
	    startView: 2,
	    /* 日期时间选择器所能够提供的最精确的时间选择视图 */
		minView: 2
	}).on('hide',function(e) {
		//e.stopPropagation()阻止事件冒泡
		e.stopPropagation();
		$('#updateForm').data('bootstrapValidator').updateStatus('date', 'NOT_VALIDATED',null)
			.validateField('date'); 
	});
});
</script>
<script type="text/javascript">
	$(function() {
		//1.初始化Table
		var oTable = new TableInit();
		oTable.Init();

		//2.初始化Button的点击事件
		var oButtonInit = new ButtonInit();
		oButtonInit.Init();
		//jQuery，既阻止默认行为又停止冒泡
	    $("#ss").on('click',function(){
	    	//当然 也阻止了事件本身
	    	return false;
	    });
	  	//添加修改数据+检验
		$(function() {
			$("#updateForm").bootstrapValidator({
					feedbackIcons : {
						valid : 'glyphicon glyphicon-ok',
						invalid : 'glyphicon glyphicon-remove',
						validating : 'glyphicon glyphicon-refresh'
					},
					fields : {
						fname : {
							validators : {
								notEmpty : {
									message : '工厂名不能为空'
								},
							}
						},
						/* date : {
							validators : {
								notEmpty : {
									message : '建立日期不能为空'
								},
							}
						},
						address : {
							validators : {
								notEmpty : {
									message : '地址不能为空'
								},
							}
						},
						mproduct : {
							validators : {
								notEmpty : {
									message : '主要产品不能为空'
								},
							}
						},
						fax : {
							validators : {
								notEmpty : {
									message : '传真不能为空'
								},
							}
						},*/
						pcapacity : {
							validators : {
								/* notEmpty : {
									message : '生产能力不能为空'
								}, */
								regexp : {
									regexp : /^\d+$/,
									message : '生产能力必须为整数'
								}
							}
						},
						/* pmanager : {
							validators : {
								notEmpty : {
									message : '工厂负责人不能为空'
								},
							}
						}, */
						phone : {
							validators : {
								/* notEmpty : {
									message : '联系电话不能为空'
								}, */
								
								regexp : {
									regexp : /^1[3|5|8][0-9]\d{8}$/,
									message : '请输入正确的联系电话号码'
								}
							}
						},
						/* representative : {
							validators : {
								notEmpty : {
									message : '法定代表人不能为空'
								},
							}
						}, */
						fnum : {
							validators : {
								/* notEmpty : {
									message : '工人人数不能为空'
								}, */
								regexp : {
									regexp : /^\d+$/,
									message : '工人人数必须为整数'
								}
							}
						},
						onum : {
							validators : {
								/* notEmpty : {
									message : '办公人数不能为空'
								}, */
								regexp : {
									regexp : /^\d+$/,
									message : '办公人数必须为整数'
								}
							}
						},
						area : {
							validators : {
								/* notEmpty : {
									message : '建筑面积不能为空'
								},  */
								regexp : {
									//regexp : /^(([0-9]+[\.]?[0-9]{1,2}))$/,
									regexp : /^[0-9]+([.]{1}[0-9]{2,2})?$/,
									message : '建筑面积只能是整数或小数点后两位'
								}
							}
						}
					},
				}).on('success.form.bv',function(e) {
					 $("#sv").on('click',function(){
						//当然 也阻止了事件本身
				    	return false;
				    });
					e.preventDefault();
					var url1 = "";
					var title = "新增";
					if("新增工厂信息" == $("#bt").html()){
						url1='${pageContext.request.contextPath}/factory/insert.do';
					}else if("修改工厂信息" == $("#bt").html()){
						url1='${pageContext.request.contextPath}/factory/update.do';
						title = "修改";
					}
					var formData = new FormData($("#updateForm")[0]);
					$.ajax({
						type : 'post',
						url : url1,
						data : formData,
						async: false,  
				        cache: false,  
				        contentType: false,  
				        processData: false,
						success : function(data) {
							if (data == 1) {
								toastr.success(title+'成功');
								//使用  setTimeout（）方法设定定时1000毫秒
								setTimeout(function(){
									window.location.reload(); 
									resets();
								},1000);
							} else if (data == 2) {
								toastr.warning('该信息已存在，不能重复添加');
								setTimeout(function(){
									window.location.reload(); 
									resets();
								},1000);
							}else {
								toastr.error(title+'失败');
								setTimeout(function(){
									window.location.reload(); 
									resets();
								},1000);
							}
						}
					});
				});
		});
	});
	var TableInit = function() {
		var queryUrl = '${pageContext.request.contextPath }/factory/select.do';
		var oTableInit = new Object();
		//初始化Table
		oTableInit.Init = function() {
			$('#tb_departments').bootstrapTable({
				url : queryUrl, //请求后台的URL（*）
				method : 'get', //请求方式（*）
				toolbar : '#toolbar', //工具按钮用哪个容器
				exportDataType : "selected", //basic, 'all', 'selected',若去掉双击事件将获取不到值
				striped : true, //是否显示行间隔色
				cache : true, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
				pagination : true, //是否显示分页（*）
				sortable : false, //是否启用排序
				sortOrder : "asc", //排序方式
				queryParams : oTableInit.queryParams,//传递参数（*）
				sidePagination : "server", //分页方式：client客户端分页，server服务端分页（*）
				pageNumber : 1, //初始化加载第一页，默认第一页
				pageSize : 10, //每页的记录行数（*）
				pageList : [ 10,20,30 ], //可供选择的每页的行数（*）
				minimumCountColumns : 2, //最少允许的列数
				clickToSelect : true, //是否启用点击选中行
				height : 523,//865满屏  //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
				uniqueId : "ID", //每一行的唯一标识，一般为主键列
				cardView : false, //是否显示详细视图
				detailView : false, //是否显示父子表
				columns : [ {
					checkbox : true
				}, {
					field : 'fid',
				}, {
					field : 'fname',
					title : '工厂名称'
				}, {
					field : 'date',
					title : '建立日期'
				}, {
					field : 'address',
					title : '地址'
				}, {
					field : 'representative',
					title : '法定代表人'
				}, {
					field : 'pmanager',
					title : '工厂负责人'
				}, {
					field : 'phone',
					title : '联系电话'
				}, {
					field : 'fax',
					title : '传真'
				}, {
					field : 'onum',
					title : '办公室人数'
				}, {
					field : 'fnum',
					title : '工人人数'
				}, {
					field : 'area',
					title : '建筑总面积'
				}, {
					field : 'mproduct',
					title : '主要产品'
				}, {
					field : 'pcapacity',
					title : '生产能力'
				}, {
					field : 'description',
					title : '描述'
				} ],
			});
			$('#tb_departments').bootstrapTable('hideColumn', 'fid');
		};

		//得到查询的参数
		oTableInit.queryParams = function(params) {
			var temp = { //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
				limit : params.limit, //页面大小
				offset : params.offset, //页码
				fname : $("#fname1").val(),
				mproduct : $("#mproduct1").val()
			};
			return temp;
		};
		return oTableInit;
	};
	var ButtonInit = function() {
		var oInit = new Object();
		var postdata = {};

		oInit.Init = function() {
			//初始化页面上面的按钮事件
		};

		return oInit;
	};
	function selectByOther() {
		$("#tb_departments").bootstrapTable('refresh',
						{
							url : '${pageContext.request.contextPath }/factory/select.do'
						});
	}
	//删除
	function doDel() {
		//必须选中一条数据
		var checkedItems = $('#tb_departments').bootstrapTable('getSelections');
		if (checkedItems.length <= 0) {
			toastr.warning('请选择一条数据');
		} else {
			var fids="";
			for(var i = 0;i < checkedItems.length; i++){
				if(i != checkedItems.length - 1){
					fids += checkedItems[i].fid + ",";
				}else{
					fids += checkedItems[i].fid;
				}
			}
			//询问框
			Ewin.confirm({message : "确认要删除选择的数据吗？"}).on(
					function(e) {
						if (!e) {return;}
						$.ajax({
							type : 'POST',
							url : '${pageContext.request.contextPath }/factory/delete.do',
							data:'fids=' + fids,
							success : function(data) {
								if (data > 0) {
									$("#tb_departments").bootstrapTable('refresh');
									toastr.success('删除成功');
								} else {
									toastr.error('Error');
								}
							}
						});
					});
		}
	}
	//打开添加模态框
	function doAdd() {
		$("#updateForm")[0].reset();
		$("#bt").html("新增工厂信息");
		$("#updateModal").modal(open);
		
	}
	//修改
	function doUpdate() {
		//必须选中一条数据
		var checkedItems = $('#tb_departments').bootstrapTable('getSelections');
		if (checkedItems.length == 1) {
			$("#bt").html("修改工厂信息");
			$("#updateModal").modal("show");
			$.ajax({
				type:"post",
				url: '${pageContext.request.contextPath }/factory/selectByPrimaryKey.do',
				data:{fid:checkedItems[0].fid},
				success:function(data){
					var json = eval('('+data+')');
					$("#fid").val(json.rows[0].fid);
					$("#fname").val(json.rows[0].fname);
					$("#date").val(json.rows[0].date);
					$("#address").val(json.rows[0].address);
					$("#representative").val(json.rows[0].representative);
					$("#pmanager").val(json.rows[0].pmanager);
					$("#phone").val(json.rows[0].phone);
					$("#fax").val(json.rows[0].fax);
					$("#onum").val(json.rows[0].onum);
					$("#fnum").val(json.rows[0].fnum);
					$("#area").val(json.rows[0].area);
					$("#mproduct").val(json.rows[0].pcapacity);
					$("#pcapacity").val(json.rows[0].pcapacity);
					$("#description").val(json.rows[0].description);
				}
			});
		} else {
			toastr.warning('请只选择一条数据');
		}
	}
	//关闭添加表单时清空数据
	function resets() {
		$('#updateForm').data('bootstrapValidator').resetForm(true);
	} 
	//导出所有
	function exportAll() {
		Ewin.confirm({message : "确认要导出所有的数据吗？"}).on(
			function(e) {
				if (!e) {return;}
				window.location.href = "${pageContext.request.contextPath }/factory/exportAll.do";
			});
	}
	function douploadModal() {
		$('#uploadModal').modal(open);
		//清空表单
		document.getElementById("importForm").reset();
	}
	function uploadBtn() {
		 var fileName = $("#fileInput").val();
		 if (fileName.length > 0) {
		     var formData = new FormData($("#importForm")[0]);  
		     $.ajax({  
		          url: '${pageContext.request.contextPath}/factory/uplodeFile.do' ,  
		          data: formData,
		          type:'post',
		          async: false,  
		          cache: false,
		          contentType: false,  
		          processData: false,
		          success: function (data) { 
		        	  if (data == 1) {
		        		  toastr.success('文件导入成功（重复数据已过虑）！');
		        		  setTimeout(function(){
								window.location.reload(); 
							},1000);
		        	  }else{
		        		  toastr.warning('文件格式异常，文件导入失败！');  
		        		  setTimeout(function(){
								window.location.reload(); 
							},1000);
		        	  }
		          },
		          error: function (data) {
		        	toastr.error("文件格式异常，导入的数据不符合导入条件");
		        	setTimeout(function(){
						window.location.reload(); 
					},1000);
		          }
		     }); 
		 }else{
			toastr.warning('上传文件为空，请选择要导入的文件！');
			setTimeout(function(){
				window.location.reload(); 
			},1000);
		}
	}
	//导出数据模板
	function doExportFile() {
		Ewin.confirm({message : "确认要导出数据模板吗？"}).on(
			function(e) {
				if (!e) {return;}
			window.location.href="${pageContext.request.contextPath}/factory/doExportFile.do";
			$('#uploadModal').modal('hide'); 
		});
	}
	toastr.options.positionClass = 'toast-top-center';
</script>
</head>
<body>
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
   		<div class="modal-dialog" role="document">
    		<div class="modal-content">
      			<div class="modal-header">
        			<button type="button" class="close" data-dismiss="modal" aria-label="Close">
        				<span aria-hidden="true">&times;</span></button>
        			<h4 class="modal-title" id="exampleModalLabel">
        				<span style="font-size:13px">excel导入</span>
        			</h4>
      			</div>
      			<div class="modal-body">
	        		<form id="importForm" class="form-horizontal">
	        			<div class="form-group">
							<label  class="col-sm-3 control-label"></label>
							<div class="col-sm-7"> 
		           				 <button id="btn_delete" type="button" class="btn btn-default" 
		           				 	onclick="doExportFile()">
					                <span class="glyphicon glyphicon-export" aria-hidden="true">
					                </span>导出数据模板
					            </button>
	          				 </div>
	          			</div>
	          			<div class="form-group">
				            <label class="col-sm-5 control-label">excel文件:</label>
				            <div class="col-sm-5"> 
					            <input id="fileInput" name="file" type="file" accept=".xls,.xlsx"/>
	          				</div>
	          			</div>
	        			<div class="form-group"> 
				   			<div class="col-sm-3 col-sm-offset-7">  
						        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
						        <button type="submit"  name="submit"  class="btn btn-primary" id="ss" 
						        	onclick="uploadBtn()">导入</button>
			      			</div>
			      		</div>
	        		</form>
	      		</div>
    		</div>
  		</div>
	</div>
	<div class="panel-body" style="padding-bottom: 0px;">
		<div class="panel panel-default">
			<div class="panel-heading">查询条件</div>
			<div class="panel-body">
				<form id="formSearch" class="form-horizontal">
					<div class="form-group" style="margin-top: 15px">
						<label class="control-label col-sm-1" for="fname1">工厂名称</label>
						<div class="col-sm-3">
							<input type="text" class="form-control" id="fname1">
						</div>
						<label class="control-label col-sm-1" for="mproduct1">主要产品</label>
						<div class="col-sm-3">
							<input type="text" class="form-control" id="mproduct1">
						</div>
						<div class="col-sm-4" style="text-align: left;">
							<button type="button" style="margin-left: 20%;"
								id="btn_query" class="btn btn-primary" onclick="selectByOther()"
								data-query-params="queryParams" data-query-params-type="limit">查询</button>
						</div>
					</div>
				</form>
			</div>
		</div>
	</div>

	<div id="toolbar" class="btn-group">

		<button id="btn_add" type="button" class="btn btn-default" onclick="doAdd()">
			<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
		</button>
		<button id="btn_edit" type="button" class="btn btn-default" onclick="doUpdate()">
            <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
        </button>
        <button id="btn_delete" onclick="doDel()" type="button" class="btn btn-default">
			<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
		</button>
		<button id="btn_import" type="button" class="btn btn-default" onclick="douploadModal()">
            <span class="glyphicon glyphicon-bullhorn" aria-hidden="true"></span>导入
        </button>
		<button id="btn_export" type="button" class="btn btn-default" onclick="exportAll()">
			<span class="glyphicon glyphicon-export" aria-hidden="true"></span>导出所有
		</button>
		<button id="btn_hide" type="button" class="btn btn-default" style="display: none;">
			<span class="glyphicon glyphicon-cancel" aria-hidden="true"></span>隐藏
		</button>
	</div>
	<table id="tb_departments"></table>
	<!-- 新增修改公用弹出框 -->
	<div class="modal fade bs-example-modal-lg" id="updateModal" tabindex="-1" role="dialog"
		aria-labelledby="updateModalLabel" aria-hidden="true">
		<div class="modal-dialog modal-lg">
			<div class="modal-content">
				<div class="modal-header">
					<button type="button" class="close" data-dismiss="modal"
						aria-label="Close" aria-hidden="true" onclick="resets()">&times;</button>
					<h4 class="modal-title" id="updateModalLabel">
						<span id="bt" style="font-size:13px"></span>
					</h4>
				</div>
				<div class="modal-body">
					<form class="form-horizontal" role="form" id="updateForm" method="post">
					<input type="hidden" id="fid" name="fid"/>
						<div class="form-group">
							<label for="fname" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">工厂名称:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" id="fname" name="fname" data-bv-notempty="true">
								<span class="xing"></span>
							</div>
							<label for="date" class="col-sm-2 control-label" style="width: 12%;
								margin-left: 35px;">建立日期:</label>
							<div class="col-sm-4">
								<input type="text" name="date" id="date" placeholder="yyyy-MM-dd" 
									readonly="readonly" class="form_datetime form-control">
							</div>
						</div>
						<div class="form-group">
							<label for="address" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">地址:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" name="address" id="address" >
							</div>
							<label for="representative" class="col-sm-2 control-label" style="width: 12%;
								margin-left: 35px;">法定代表人:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" name="representative" id="representative">
							</div>
						</div>
						<div class="form-group">
							<label for="pmanager" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">工厂负责人:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" name="pmanager" id="pmanager">
							</div>
							<label for="phone" class="col-sm-2 control-label" style="width: 12%;
								margin-left: 35px;">联系电话:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" id="phone" name="phone">
							</div>
						</div>
						<div class="form-group">
							<label for="fax" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">传真:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" name="fax" id="fax">
							</div>
							<label for="onum" class="col-sm-2 control-label" style="width: 12%;
								margin-left: 35px;">办公室人数:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" name="onum" id="onum" >
							</div>
						</div>
						<div class="form-group">
							<label for="fnum" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">工人人数:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" id="fnum" name="fnum" >
							</div>
							<label for="area" class="col-sm-2 control-label" style="width: 12%;
								margin-left: 35px;">建筑面积:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" name="area" id="area" >
							</div>
						</div>
						<div class="form-group">
							<label for="mproduct" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">主要产品:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" id="mproduct" name="mproduct" >
							</div>
							<label for="pcapacity" class="col-sm-2 control-label" style="width: 12%;
								margin-left: 35px;">生产能力:</label>
							<div class="col-sm-4">
								<input type="text" class="form-control" id="pcapacity" name="pcapacity" >
							</div>
						</div>
						<div class="form-group">
							<label for="description" class="col-sm-2 control-label" style="width: 12%;
								margin-left:30px;">描述:</label>
							<div class="col-sm-10">
								<textarea class="layui-textarea" name="description" id="description" 
									rows="2" cols="70" style="width: 99%;">
									</textarea>
							</div>
						</div>
						<div class="modal-footer">
							<button type="button" class="btn btn-default" data-dismiss="modal" 
								onclick="resets()">关闭</button>
							<button type="submit" class="btn btn-primary" id="sv">保存</button>
						</div>
					</form>
				</div>
			</div>
		</div>
	</div>
</body>
</html>